package avicit.bdp.dcs.semistructure.dto;

import io.swagger.annotations.ApiModelProperty;

/**
 * 文件对象
 */
public class FileDto {

    @ApiModelProperty(value = "文件id")
    private String id;

    @ApiModelProperty(value = "文件名称")
    private String fileName;

    @ApiModelProperty(value = "文件路径")
    private String filePath;

    @ApiModelProperty(value = "文件大小")
    private String fileSize;

    @ApiModelProperty(value = "上传日期")
    private String updateDate;

    @ApiModelProperty(value = "关联模板名称")
    private String templateName;

    @ApiModelProperty(value = "文件上传进度")
    private String progress;

    @ApiModelProperty(value = "文件上传状态")
    private String uploadStatus;

    public FileDto(Builder builder) {
        this.id = builder.id;
        this.fileName = builder.fileName;
        this.filePath = builder.filePath;
        this.fileSize = builder.fileSize;
        this.updateDate = builder.updateDate;
        this.templateName = builder.templateName;
        this.progress = builder.progress;
        this.uploadStatus = builder.uploadStatus;
    }

    public FileDto() {

    }

    public static Builder builder() {
        return new Builder();
    }

    public String getId() {
        return id;
    }

    public void setId(String id) {
        this.id = id;
    }

    public String getFileName() {
        return fileName;
    }

    public void setFileName(String fileName) {
        this.fileName = fileName;
    }

    public String getFileSize() {
        return fileSize;
    }

    public void setFileSize(String fileSize) {
        this.fileSize = fileSize;
    }

    public String getUpdateDate() {
        return updateDate;
    }

    public void setUpdateDate(String updateDate) {
        this.updateDate = updateDate;
    }

    public String getFilePath() {
        return filePath;
    }

    public void setFilePath(String filePath) {
        this.filePath = filePath;
    }

    public String getTemplateName() {
        return templateName;
    }

    public void setTemplateName(String templateName) {
        this.templateName = templateName;
    }

    public String getProgress() {
        return progress;
    }

    public void setProgress(String progress) {
        this.progress = progress;
    }

    public String getUploadStatus() {
        return uploadStatus;
    }

    public void setUploadStatus(String uploadStatus) {
        this.uploadStatus = uploadStatus;
    }

    public static class Builder{
        private String id;
        private String fileName;
        private String filePath;
        private String fileSize;
        private String updateDate;
        private String templateName;
        private String progress;
        private String uploadStatus;
        public Builder id(String id) {
            this.id = id;
            return this;
        }
        public Builder fileName(String fileName) {
            this.fileName = fileName;
            return this;
        }
        public Builder filePath(String filePath) {
            this.filePath = filePath;
            return this;
        }
        public Builder fileSize(String fileSize) {
            this.fileSize = fileSize;
            return this;
        }
        public Builder updateDate(String updateDate) {
            this.updateDate = updateDate;
            return this;
        }
        public Builder templateName(String templateName) {
            this.templateName = templateName;
            return this;
        }
        public Builder progress(String progress) {
            this.progress = progress;
            return this;
        }
        public Builder uploadStatus(String uploadStatus) {
            this.uploadStatus = uploadStatus;
            return this;
        }
        public FileDto build() {
            return new FileDto(this);
        }
    }
}
